import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * 有一个 30 行 60 列的数字矩阵，矩阵中的每个数都是 0 到 9 之间的数字
 * 从这个矩阵的第一行第一列画一条折线到第 30 行 60 列
 * 线只能沿水平向右走或竖直向下走，只能在有数字的地方拐弯
 * 小蓝想知道，这样一条线经过的数字的和最大是多少
 * 最优路径问题
 */
public class Test3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[][] nums = new int[30][60];
        for (int i = 0; i < 30; i++) {
            for (int j = 0; j < 60; j++) {
                nums[i][j] = sc.nextInt();
            }
            sc.next();
        }
        int ans = func(0,0, nums);
        System.out.println(ans);
    }

    public static int func(int x, int y, int[][] nums) {
        if(x == 29 && y == 59) {
            return nums[x][y];
        }
        int count1 = nums[x][y];
        int count2 = nums[x][y];
        if(x < 29) {
            count1 += func(x + 1, y, nums);
        }
        if(y < 59) {
            count2 += func(x, y + 1, nums);
        }
        return Math.max(count1, count2);
    }
}
